/-boot
/-docs
/-editor ...
CodeMirrorEditor.ts
CompletionCodeMirrorEditor.ts
CssEditorType.ts
Editor.ts
EditorType.ts
HtmlEditorType.ts
JavaScriptEditorType.ts
TypeScriptEditorType.ts
x-last-PlainTextEditorType.ts
/-files
/-files-old
/-imports
/-layout
/-shell
/-storage
/-tests
/-typings
codemirror.d.ts
knockout.d.ts
typescriptServices.d.ts
websql.d.ts
zip.js.d.ts
Dom.ts
TypeScriptService.ts
functions.ts
ko.ts
nteapo.html
persistence.api.ts
persistence.ts
shell.ts
teapo.html
teapo.js
teapo.ts
try.html
try.js
xxxxxxxxxx
      //console.log('[' + removedText.replace(/\n/g, '\\n') + '] -> [' + addedText.replace(/\n/g, '\\n') + '] - TextChangeRange:', this._bufferChanges[this._bufferChanges.length-1]);
 
353
​
354
    lookupSearch() {
355
      this._removeLookupHost();
356
​
357
      if (!this._dom)
358
        this._dom = new Dom();
359
      
360
      this._lookupHost = <HTMLDivElement>this._dom.createElement('div', {
361
        position: 'absolute',
362
        left: '25%',
363
        right: '25%',
364
        top: '25%',
365
        bottom: '25%',
366
        background: 'white',
367
        border: '2px solid silver',
368
        padding: '1em',
369
        zIndex: '900',
370
        overflow: 'auto'
371
      }, this._sharedState.element);
372
​
373
      var doc = this.doc();
374
      var editor = this.editor();
375
      var cursorPos = doc.getCursor();
376
      var cursorOffset = doc.indexFromPos(cursorPos);
377
​
378
      var searchInput = <HTMLInputElement>this._dom.createElement('input', {
379
        width: '100%'
380
      }, this._lookupHost);
381
      
382
      var textSpan = this._typescript.service.getNameOrDottedNameSpan(this.docState.fullPath(), cursorOffset, cursorOffset + 1);
383
      if (textSpan)
384
        searchInput.value = doc.getRange(editor.posFromIndex(textSpan.start()), editor.posFromIndex(textSpan.end()));
385
      else
386
        searchInput.value = 'this';
387
​
388
      var searchResult = <HTMLDivElement>this._dom.createElement('div', {
389
​
390
      }, this._lookupHost);
391
​
392
      var refs = this._typescript.service.getReferencesAtPosition(this.docState.fullPath(), cursorOffset);
393
      for (var i = 0; i < refs.length; i++) {
394
        this._dom.createElement('div', {
395
          text: refs[i].fileName + ' @' + refs[i].textSpan.start()
396
        }, searchResult);
397
      }
398
​
399
      setTimeout(() => {
400
        searchInput.focus();
401
      }, 10);
402
​
403
      var updateTimeout = 0;
404
      var searchedText = searchInput.value;
405
​
406
      searchInput.onkeydown = (evt) => {
407
        if (evt.keyCode === 27) { 
408
          this._removeLookupHost();
409
          if (evt.preventDefault)
410
            evt.preventDefault();
411
          return;
412
        }
413
​
414
        if (!updateTimeout) {
415
          updateTimeout = setTimeout(() => {
416
            updateTimeout = 0;
417
            if (searchInput.value === searchedText) return;
418
            searchedText = searchInput.value;
419
                                     
420
            var cursorPos = doc.getCursor();
0:0